package com.shujia.wyh.day24;

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.nio.charset.Charset;

/*
        字符输入流：Reader -- InputStreamReader

        InputStreamReader的构造方法：
            InputStreamReader(InputStream in)
                创建一个使用默认字符集的InputStreamReader。
            InputStreamReader(InputStream in, String charsetName)
                创建一个使用命名字符集的InputStreamReader。

        InputStreamReader读取数据的两种方式：
            1、public int read()
            2、public int read(char[] cbuf)

 */
public class InputStreamReaderDemo1 {
    public static void main(String[] args) throws IOException {
//        FileInputStream fis = new FileInputStream("a.txt");
//        //创建一个字符输入流对象
//        InputStreamReader isr = new InputStreamReader(fis);
        InputStreamReader isr = new InputStreamReader(new FileInputStream("a.txt"));

        //调用方法读取数据
        //方式1：一次读取一个字符
//        int read = isr.read();
//        System.out.println((char) read);
//        int read2 = isr.read();
//        System.out.println((char) read2);
//        int read3 = isr.read();
//        System.out.println((char) read3);
        //字符读取，如果已经达到流的结尾，则为-1
//        int ch = 0;
//        while ((ch = isr.read()) != -1) {
//            System.out.print((char) ch);
//        }

        System.out.println("====================================");
        //方式2：一次读取一个字符数组
        //public int read(char[] cbuf)
        char[] chars = new char[1024];
        int length = 0;
        while ((length = isr.read(chars)) != -1) {
            String s = new String(chars, 0, length);
            System.out.println(s);
        }


        //释放资源
        isr.close();

    }
}
